
/**   
 * @Title: RoleController.java 
 * @Package: com.aft.cdcb.modules.admin.controller 
 * @Description: TODO
 * @author Mandarava  
 * @date 2016年8月25日 下午5:51:03 
 * @version 1.3.1 
 * @Email wuyan1688@qq.com
 */

package com.infoland.modules.main.controller;

import java.util.List;

import org.apache.shiro.authz.annotation.Logical;
import org.apache.shiro.authz.annotation.RequiresRoles;

import com.alibaba.fastjson.JSONArray;
import com.infoland.modules.basic.BaseController;
import com.infoland.modules.basic.Message;
import com.infoland.modules.main.model.Menu;
import com.infoland.modules.main.model.Role;
import com.infoland.modules.main.service.SystemService;
import com.jfinal.plugin.activerecord.Page;

/**
 * 角色管理
 * 
 * @author Mandarava
 * @date 2016年8月25日 下午5:51:03
 * @version V1.3.1
 */
@RequiresRoles(value = { "ADMIN_ROLE", "SYS_ROLE" }, logical = Logical.OR)
public class RoleController extends BaseController<Role> {

	/**
	 * 角色列表
	 * 
	 * @author Mandarava
	 */
	public void roleList() {
		Page<Role> page = SystemService.service.findRoleByPage(this);
		renderJson(page);
	}

	public void getAllRole() {
		renderJson(SystemService.service.findAllRole());
	}

	/**
	 * 跳转至修改角色页面
	 * 
	 * @author Mandarava
	 */
	public void editRole() {
		Long id = getJSONParaToLong("id");
		Role role = SystemService.service.findOneRole(id);
		renderJson(role);
	}

	/**
	 * 执行新增角色
	 * 
	 * @author Mandarava
	 */

	public void saveRole() {
		Role role = getJSONModel(Role.class);
		Message message = SystemService.service.saveRole(role);
		renderJson(message);
	}

	/**
	 * 执行修改角色
	 * 
	 * @author Mandarava
	 */

	public void updateRole() {
		Role role = getJSONModel(Role.class);
		Message message = SystemService.service.updateRole(role);
		renderJson(message);
	}

	/**
	 * 执行删除角色 （可批量）
	 * 
	 * @author Mandarava
	 */

	public void deleteRole() {
		Integer[] ids = getJSONValuesToInt("ids");
		Message message = SystemService.service.batchDelRole(ids);
		renderJson(message);
	}

	/**
	 * 获取授权列表
	 * 
	 * @author Mandarava
	 */
	public void authorityList() {
		List<Menu> list = SystemService.service.authorityList();
		renderJson(list);
	}

	/**
	 * 授权列表
	 * @author lixp
	 * @time:2017年7年12日 下午2:16:30
	 */

	public void authority() {
		// 获取角色id
		Long roleId = getJSONParaToLong("roleId");
		// 获取选择的菜单对应关系
		JSONArray menuIds = getJSONArray("menuIds");
		// 获取选择的权限
		JSONArray permissionIds = getJSONArray("permissionIds");
		Message message = SystemService.service.authority(roleId, menuIds, permissionIds);
		renderJson(message);
	}

}
